#ifndef THREAD_SEARCH_VIEW_MANAGER_BASE_H
#define THREAD_SEARCH_VIEW_MANAGER_BASE_H

class ThreadSearchView;

class ThreadSearchViewManagerBase {
  public:
    enum eManagerTypes {
      TypeMessagesNotebook = 0,
      TypeLayout
    };


    static ThreadSearchViewManagerBase* BuildThreadSearchViewManagerBase( ThreadSearchView* pView,
        bool              addViewToManager,
        eManagerTypes     managerType );


    virtual ~ThreadSearchViewManagerBase() {}

    eManagerTypes virtual GetManagerType() = 0;


    virtual void AddViewToManager() = 0;


    virtual void RemoveViewFromManager() = 0;


    virtual bool ShowView( bool show = true ) = 0;


    virtual bool IsViewShown() = 0;


    virtual void Raise() = 0;

  protected:

    ThreadSearchViewManagerBase( ThreadSearchView* pThreadSearchView )
      : m_pThreadSearchView( pThreadSearchView )
      , m_IsManaged( false )
      , m_IsShown( false ) {
    }

    ThreadSearchView* m_pThreadSearchView;
    bool              m_IsManaged;
    bool              m_IsShown;
};

#endif
